﻿using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ITA;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;

namespace ItaUnitTest 
{   
    /// <summary>
    /// unit tesz a memória alapú memória kezelésre és beolvasására
    /// </summary>
    [TestClass]
    public class Memoriaalapuhoz
    {

     
        /// <summary>
        /// Egy Megjegyzés típusú "elvárt" nevű referencia változóban eltároljuk a megfelelő adatokat a tesztSzoveg felhasználásával
        /// majd a MemMentes típusú "mementes" nevű referenciának a Mentes metódusát felhasználva megtörténik a memóriában való tárolás
        /// Majd végül összehasonlítjuk a két eredményt.
        /// </summary>
        [TestMethod]
        public void MemoriaTesztMentes()
        {

            // Arrange
            
            MemMentes mementes = new MemMentes();
            Megjegyzes elvart = new Megjegyzes();
            Szoveg tesztSzoveg = new Szoveg();
            tesztSzoveg.Datum = Convert.ToDateTime("2014.12.11");
            tesztSzoveg.Rovid = "ez itt a rovid hozzafuzes";
            tesztSzoveg.Hosszu = "ez itt a hosszu szoveg";
            tesztSzoveg.Lokalizacio1 = CultureInfo.CurrentCulture.LCID;
            elvart.SzovegLista.Add(tesztSzoveg);


            // Act

            mementes.Mentes(elvart, "Mentes.xml");
        
            // Assert
            Assert.AreEqual(elvart, MemMentes.MegjegyzMent);

        }

        /// <summary>
        /// Egy Megjegyzés típusú "elvárt" nevű referencia változóban eltároljuk a megfelelő adatokat a tesztSzoveg felhasználásával
        /// majd a MemMentes típusú "mementes" nevű referenciának a Mentes metódusát felhasználva megtörténik a memóriában való tárolás
        /// A betoltes metódus felhasználásával teszteljük hogy a betöltött adatok megegyeznek az elvártban tárolt adatokkal.
        /// </summary>
        [TestMethod]
        public void MemoriaTesztBetoltes()
        { 

            // Arrange

            MemMentes mementes = new MemMentes();
            Megjegyzes elvart = new Megjegyzes();
            Szoveg tesztSzoveg = new Szoveg();
            tesztSzoveg.Datum = Convert.ToDateTime("2014.12.11");
            tesztSzoveg.Rovid = "ez itt a rovid hozzafuzes";
            tesztSzoveg.Hosszu = "ez itt a hosszu szoveg";
            tesztSzoveg.Lokalizacio1 = CultureInfo.CurrentCulture.LCID;
            elvart.SzovegLista.Add(tesztSzoveg);


            // Act

            MemMentes.MegjegyzMent = elvart;

            // Assert
            Assert.AreEqual(elvart, mementes.Betoltes("I"));

        }
    }
}
